In this experiment we sorted MPPs from WT mice (mice were sent from IMDEA madrid) and barcoded them with the LG2.2 library. Cells were transplanted into irradiated recipients and 3 weeks later the bone marrow was harvested, barcoded cells were sorted and lysed for barcode library sequencing.
#load in the QC'd data matrix.
wt.mat <- read.csv("JCW24WT_ANALYSIS_matx_norm_filt_cor_ab_trueFalseRU.csv")
#perform column-level normalisation to each sample
wt.mat.norm <- columnNormalisation(wt.mat[,-1],wt.mat$tag)
#remove barcodes that are not expressed in any of the samples
wt.mat.norm.filt <- removeUninformativeClones(wt.mat.norm)
#obtain the matrices for each mouse
wt.m1<- getMouseMatrix(wt.mat.norm.filt,"M1.WT")
wt.m2<- getMouseMatrix(wt.mat.norm.filt,"M2.WT")
wt.m3<- getMouseMatrix(wt.mat.norm.filt,"M3.WT")
wt.m4<- getMouseMatrix(wt.mat.norm.filt,"M4.WT")
#normalise the values to cellcounts
m1.wt.cellnorm <- cellcountNormalisation("M1-WT", wt.m1)
m2.wt.cellnorm <- cellcountNormalisation("M2-WT", wt.m2)
m3.wt.cellnorm <- cellcountNormalisation("M3-WT", wt.m3)
m4.wt.cellnorm <- cellcountNormalisation("M4-WT", wt.m4)
# merge the different mice into a single sample
wt.meta <- makeMetaMouse(wt.m1, wt.m2, wt.m3, wt.m4 )
# merge the different mice into a single sample
wt.meta.cellnorm <- makeMetaMouse(m1.wt.cellnorm,m2.wt.cellnorm ,m3.wt.cellnorm ,m4.wt.cellnorm )
In this section we set a read threshold for barcode classification. This allows us to see which barcodes are found in both CD62Lneg and CD62Lhi and which is found in only one of these classes.
If we dont set a strict threshold we can get much higher number of barcodes, however a large proportion of the barcodes are very lowly expressed and so we have much less confidence that the barcodes are truly restricted to one of the CD62L subsets as sampling biases play a much larger role in lowly abundant clones.
##
## cd62lhi cd62lneg None
## 232 125 182
##
## cd62lhi cd62lneg None
## 19 35 485
##
## cd62lhi cd62lneg None
## 12 25 502
##
## cd62lhi cd62lneg None
## 19 35 485
##
## Wilcoxon rank sum exact test
##
## data: df.cellnorm[cd62lneg.barcodes, ]$M and df.cellnorm[cd62lhi.barcodes, ]$M
## W = 219, p-value = 0.03989
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$M and supermouse.rownorm.pos$M
## W = 192, p-value = 0.0103
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$B and supermouse.rownorm.pos$B
## W = 473, p-value = 0.0103
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$E and supermouse.rownorm.pos$E
## W = 390, p-value = 0.3049
## alternative hypothesis: true location shift is not equal to 0
##
## cd62lhi cd62lneg None
## 12 25 502
##
## Wilcoxon rank sum exact test
##
## data: df.cellnorm[cd62lneg.barcodes, ]$M and df.cellnorm[cd62lhi.barcodes, ]$M
## W = 87, p-value = 0.04138
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$M and supermouse.rownorm.pos$M
## W = 75, p-value = 0.0141
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$B and supermouse.rownorm.pos$B
## W = 224, p-value = 0.01554
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$E and supermouse.rownorm.pos$E
## W = 176, p-value = 0.4134
## alternative hypothesis: true location shift is not equal to 0
In the G6PD analysis we set a cumulative read threshold to assign B-cell producing barcodes - lets try a similar approach here to see if our results are robust
##
## cd62lhi cd62lneg None
## 13 17 188
##
## Wilcoxon rank sum exact test
##
## data: df.cellnorm[cd62lneg.barcodes, ]$M and df.cellnorm[cd62lhi.barcodes, ]$M
## W = 67, p-value = 0.07154
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$M and supermouse.rownorm.pos$M
## W = 52, p-value = 0.01356
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$B and supermouse.rownorm.pos$B
## W = 159, p-value = 0.04331
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$E and supermouse.rownorm.pos$E
## W = 143, p-value = 0.1833
## alternative hypothesis: true location shift is not equal to 0
Because our previous analyses were performed by pooling all of the data together to increase statistical power we lose information about how well our phenotype is maintained across biological replicates. To assess this factor we perform the same analyses as above but for each mouse.
Here we see that in mouse 2
##
## Wilcoxon rank sum exact test
##
## data: df.cellnorm[cd62lneg.barcodes, ]$M and df.cellnorm[cd62lhi.barcodes, ]$M
## W = 22, p-value = 0.456
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$M and supermouse.rownorm.pos$M
## W = 10, p-value = 0.3681
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$B and supermouse.rownorm.pos$B
## W = 17, p-value = 1
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$E and supermouse.rownorm.pos$E
## W = 18, p-value = 0.8846
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: df.cellnorm[cd62lneg.barcodes, ]$M and df.cellnorm[cd62lhi.barcodes, ]$M
## W = 1, p-value = 1
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$M and supermouse.rownorm.pos$M
## W = 0, p-value = 0.6667
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$B and supermouse.rownorm.pos$B
## W = 1, p-value = 1
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$E and supermouse.rownorm.pos$E
## W = 2, p-value = 0.6667
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: df.cellnorm[cd62lneg.barcodes, ]$M and df.cellnorm[cd62lhi.barcodes, ]$M
## W = 17, p-value = 0.006367
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$M and supermouse.rownorm.pos$M
## W = 29, p-value = 0.06983
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$B and supermouse.rownorm.pos$B
## W = 66, p-value = 0.5252
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$E and supermouse.rownorm.pos$E
## W = 66, p-value = 0.5252
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: df.cellnorm[cd62lneg.barcodes, ]$M and df.cellnorm[cd62lhi.barcodes, ]$M
## W = 58, p-value = 0.621
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$M and supermouse.rownorm.pos$M
## W = 53, p-value = 0.8694
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$B and supermouse.rownorm.pos$B
## W = 63, p-value = 0.4076
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon rank sum exact test
##
## data: supermouse.rownorm.neg$E and supermouse.rownorm.pos$E
## W = 48, p-value = 0.9215
## alternative hypothesis: true location shift is not equal to 0